const LowerDecarator:PropertyDecorator = (target: Object, propertyKey: string | symbol) => {
    let value:string;
    Object.defineProperty(target,propertyKey,{
        get:() => {
            return value.toLowerCase();
        },
        set:v => {
            value = v;
        }
    })
}

class User{
    @LowerDecarator
    public name: string | undefined;
}

const user = new User();
user.name = "HouDun";
console.log(user.name);
